The present invention relates generally to computer data communications, and more particularly to communications protocols providing enhanced capabilities for modems.
Computers use various networking and data communications techniques to transmit information from one computer to another over a network. A typical network includes a series of interconnected data communications devices that can each exchange data from one device to another, enabling the exchange of information. In a typical computer networking application, source and destination computers are personal computers, workstations, servers, or the like, which each include a modem or other transmitter/receiver that is used to establish a connection to the network and transmit/receive information from computer to computer.
Modem connections typically are established using a Public Switched Telephone Network (xe2x80x9cPSTNxe2x80x9d). These connections are bandwidth limited and transmit times can become exceedingly long when large amounts of information are transmitted. Data compression techniques exist to reduce the amount of data transferred, many are based upon the Lempel-Ziv (xe2x80x9cLZxe2x80x9d) family of compression algorithms (e.g., V.42bis) or Huffman coding techniques (e.g., MNP5). Additionally, other enhanced capabilities for modems, such as encryption, are desirable. This is especially true as wireless/cellular modems are increasingly used for the transmission of confidential data. Other time sensitive operations (e.g., protocol negotiations) can be improved by modems with enhanced capabilities.
Existing modem compression protocols are usually designed to handle redundant (e.g., text strings) data and can fail (i.e., not reduce the amount of data transferred) when presented with non-redundant (e.g., .JPG or .MPF) data. A common example of this is MNP5 compression which will xe2x80x9ccompressxe2x80x9d .ZIP files, resulting in a xe2x80x9ccompressedxe2x80x9d file larger than the original. A framework for monitoring compression performance and switching compression algorithms to optimize throughput is desirable. The present invention provides a framework for the negotiation of a dual-channel communication protocol between modems connected by a communications link. The present invention, for example, allows for a more optimal compression algorithm to be employed on the communications link established between modems. The system disables existing compression protocols and detects conditions which allow for the negotiation of a dual-channel communication link. The dual-channel communications link includes a data channel used for sending and receiving data and a command channel for sending and receiving command and status information. Data on the data channel is compressed using one of a plurality of compression algorithms.
In one embodiment of the present invention a framework for the negotiation of a dual-channel communication protocol between modems connected by a communications link is provided for enabling data compression. An initializer disables an existing communications protocol and a detector determines conditions that allow for the negotiation of the dual-channel communication protocol. A channel builder for establishing the dual-channel communications protocol creates a first channel of the dual-channel communications protocol enabled for sending and receiving data and a second channel of the dual-channel communications protocol enabled for channel command and status information. A negotiator selects a compression algorithm for running on the first channel from a plurality of compression algorithms.
In another embodiment of the present invention a framework for the negotiation of a dual-channel communication protocol between modems connected by a communications link is provided to spoof the Link Control Protocol (xe2x80x9cLCPxe2x80x9d) negotiation phase of Point-to-Point Protocol (xe2x80x9cPPPxe2x80x9d) establishment. An initializer prepares the communications line for the establishment of the dual-channel. A channel builder transmits LCP parameter information and establishes the dual-channel communications protocol creating a first channel of the dual-channel communications protocol enabled for sending and receiving data and a second channel of the dual-channel communications protocol enabled for channel command and status information. A negotiator selects an algorithm for downloading over the first channel and running on the client to negotiate LCP negotiation from a plurality of algorithms stored on the server.